package org.cainiao.api.lark.dto.response.docs.docs.apireference.document.text;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;

/**
 * <br />
 * <p>
 * Author: Cai Niao(wdhlzd@163.com)<br />
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class LarkTextStyle implements Serializable {

    @Serial
    private static final long serialVersionUID = 5972414979858490537L;

    /**
     * 对齐方式
     */
    private Integer align;

    /**
     * 【代办】的完成状态。支持对【代办】块进行修改
     */
    private boolean done;

    /**
     * 文本的折叠状态<br />
     * 支持对 Heading 1 ~ 9、和有子块的 Text、Ordered、Bullet 和【代办】块进行修改
     */
    private boolean folded;

    /**
     * 代码块的语言类型<br />
     * 仅支持对 Code 块进行修改<br />
     * <ol>
     *     <li>1：PlainText</li>
     *     <li>2：ABAP</li>
     *     <li>3：Ada</li>
     *     <li>4：Apache</li>
     *     <li>5：Apex</li>
     *     <li>6：Assembly Language</li>
     *     <li>7：Bash</li>
     *     <li>8：CSharp</li>
     *     <li>9：C++</li>
     *     <li>10：C</li>
     *     <li>11：COBOL</li>
     *     <li>12：CSS</li>
     *     <li>13：CoffeeScript</li>
     *     <li>14：D</li>
     *     <li>15：Dart</li>
     *     <li>16：Delphi</li>
     *     <li>17：Django</li>
     *     <li>18：Dockerfile</li>
     *     <li>19：Erlang</li>
     *     <li>20：Fortran</li>
     *     <li>21：FoxPro</li>
     *     <li>22：Go</li>
     *     <li>23：Groovy</li>
     *     <li>24：HTML</li>
     *     <li>25：HTMLBars</li>
     *     <li>26：HTTP</li>
     *     <li>27：Haskell</li>
     *     <li>28：JSON</li>
     *     <li>29：Java</li>
     *     <li>30：JavaScript</li>
     *     <li>31：Julia</li>
     *     <li>32：Kotlin</li>
     *     <li>33：LateX</li>
     *     <li>34：Lisp</li>
     *     <li>35：Logo</li>
     *     <li>36：Lua</li>
     *     <li>37：MATLAB</li>
     *     <li>38：Makefile</li>
     *     <li>39：Markdown</li>
     *     <li>40：Nginx</li>
     *     <li>41：Objective-C</li>
     *     <li>42：OpenEdgeABL</li>
     *     <li>43：PHP</li>
     *     <li>44：Perl</li>
     *     <li>45：PostScript</li>
     *     <li>46：Power Shell</li>
     *     <li>47：Prolog</li>
     *     <li>48：ProtoBuf</li>
     *     <li>49：Python</li>
     *     <li>50：R</li>
     *     <li>51：RPG</li>
     *     <li>52：Ruby</li>
     *     <li>53：Rust</li>
     *     <li>54：SAS</li>
     *     <li>55：SCSS</li>
     *     <li>56：SQL</li>
     *     <li>57：Scala</li>
     *     <li>58：Scheme</li>
     *     <li>59：Scratch</li>
     *     <li>60：Shell</li>
     *     <li>61：Swift</li>
     *     <li>62：Thrift</li>
     *     <li>63：TypeScript</li>
     *     <li>64：VBScript</li>
     *     <li>65：Visual Basic</li>
     *     <li>66：XML</li>
     *     <li>67：YAML</li>
     *     <li>68：CMake</li>
     *     <li>69：Diff</li>
     *     <li>70：Gherkin</li>
     *     <li>71：GraphQL</li>
     *     <li>72：OpenGL Shading Language</li>
     *     <li>73：Properties</li>
     *     <li>74：Solidity</li>
     *     <li>75：TOML</li>
     * </ol>
     */
    private Integer language;

    /**
     * 代码块是否自动换行<br />
     * 支持对 Code 块进行修改
     */
    private boolean wrap;

    /**
     * TODO
     */
    private String backgroundColor;

    /**
     * TODO
     */
    private String indentationLevel;

    /**
     * TODO
     */
    private String sequence;
}
